#ifndef __CONFIGURABLE_PARSER_H__
#define __CONFIGURABLE_PARSER_H__

#include "parse_option.hpp"

namespace cyclone::parser
{
    class ConfigurableParser
    {
    public:
        auto enableParensInType(bool enable)
        {
            allowParensInType_ = enable;
        }
        auto allowParenthesesInType() const
        {
            return allowParensInType_;
        }

        auto enableUndefinedInType(bool enable)
        {
            allowUndefinedInType_ = enable;
        }
        auto allowUndefinedInType() const
        {
            return allowUndefinedInType_;
        }
        auto setVersion(Version version)
        {
            version_ = version;
        }
        auto version() const
        {
            return version_;
        }

    private:
        bool allowParensInType_ = false;
        bool allowUndefinedInType_ = false;
        Version version_;
    };

} // namespace cyclone::parser

#endif // __CONFIGURABLE_PARSER_H__